﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using bibliotecaWPF.LogicaNegocio;
using System.Text.RegularExpressions;

namespace bibliotecaWPF.Presentacion
{
    /// <summary>
    /// Lógica de interacción para FnuevoSocio.xaml
    /// </summary>
    public partial class FnuevoSocio : Window
    {
        public FnuevoSocio()
        {
            InitializeComponent();
        }
        //variables
        bool estado,vemail,campo;

        private void btn_registrar_Click(object sender, RoutedEventArgs e)
        {
            camvacio();//validar campo vacio
            if (campo != false)
            {
                //validar que edad sea entero
                try
                {
                    int ed = Convert.ToInt32(tb_edad.Text);
                    int tel = Convert.ToInt32(tb_telefono.Text);
                    estado = true;
                }
                catch (FormatException)
                {
                    estado = false;//enviará mensaje de error
                    MessageBox.Show("Edad y telefono deben ser un números enteros", "Formato Invalido", MessageBoxButton.OK, MessageBoxImage.Error);
                } if (estado != false)
                {
                    vemail = validaEmail(tb_email.Text);//vemail recibe true o false
                    if (vemail != false)
                    {
                        if (ManejaLibros.existesocio(tb_rut.Text) != true)//se consulta socio existe
                        {
                            ManejaLibros.registrar(tb_rut.Text, tb_nombre.Text, tb_apellido.Text, tb_edad.Text, tb_telefono.Text, cb_sexo.Text, tb_email.Text);
                            MessageBox.Show("Socio registrado correctamente", "Aviso", MessageBoxButton.OK, MessageBoxImage.Information);
                            limpiar();
                            campo = false;//los campos volvieron a estar vacios
                        }
                        else
                        {
                            MessageBox.Show("Rut ya existe", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Email no valido", "Formato Invalido", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                    }
                
            }
        }

        private void btn_cancelar_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }
        //validacion de mail
        private Boolean validaEmail(String email)
        {
            String expresion;
            expresion = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
            if (Regex.IsMatch(email, expresion))
            {
                if (Regex.Replace(email, expresion, String.Empty).Length == 0)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return false;
            }
        }
        //validar campo vacio
        public void camvacio()
        {
            if (tb_rut.Text == "" || tb_nombre.Text == "" || tb_apellido.Text == "" || tb_edad.Text == "" || tb_telefono.Text == ""||cb_sexo.Text=="" ||tb_email.Text == "")
            {
                MessageBox.Show("Debe llenar todos los campos", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            else
            {
                campo = true;
            }
        }
        //metodo limpiar
        public void limpiar()
        {
            tb_rut.Text = "";
            tb_nombre.Text = "";
            tb_apellido.Text = "";
            tb_edad.Text= "";
            tb_telefono.Text = "";
            cb_sexo.Text = "";
            tb_email.Text = "";
        }
    }
}
